#ifndef NEWTONSCRADLE_H
#define NEWTONSCRADLE_H

#include <NxVec3.h>
#include <NxActor.h>
#include <NxScene.h>

class NewtonsCradle
{
private:
    NxVec3 position;
    NxVec3 size;
    int numBalls;
    float ballRadius;
    NxActor *leftFrame;
    NxActor *rightFrame;
    NxActor **balls;

public:
    NewtonsCradle(const NxVec3 &pos, const NxVec3 &size, NxScene *scene, int numBalls, float ballRadius, float gapBetweenBalls);
    ~NewtonsCradle();

    inline const NxVec3 &GetPosition() { return this->position; };
    inline const NxVec3 &GetSize() { return this->size; };
    inline NxActor *GetLeftFrame() { return this->leftFrame; };
    inline NxActor *GetRightFrame() { return this->rightFrame; };
    inline int GetNumBalls() { return this->numBalls; };
    inline NxActor **GetBalls() { return this->balls; };

    void Draw();
};

#endif //NEWTONSCRADLE_H
